home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / Tool Chest / Interfaces / UniversalInterfaces 2.1B1 / AIncludes / Resources.a < prev    next >
Encoding:
Text File  |  1995-04-18  |  11.1 KB  |  583 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        Resources.a
  3. ;
  4. ;    Contains:    Resource Manager Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Package:    Universal Interfaces 2.1ß1 in “MPW Prerelease” on ETO #17
  8. ;
  9. ;    Copyright:    © 1984-1995 by Apple Computer, Inc.
  10. ;                All rights reserved.
  11. ;
  12. ;    Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13. ;                stack.  Include the file and version information (from above)
  14. ;                in the problem description and send to:
  15. ;                    Internet:    apple.bugs@applelink.apple.com
  16. ;                    AppleLink:    APPLE.BUGS
  17. ;
  18. ;
  19.  
  20.     IF &TYPE('__RESOURCES__') = 'UNDEFINED' THEN
  21. __RESOURCES__ SET 1
  22.  
  23.  
  24.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  25.     include 'Types.a'
  26.     ENDIF
  27. ;        include 'ConditionalMacros.a'                                ;
  28.  
  29.     IF &TYPE('__MIXEDMODE__') = 'UNDEFINED' THEN
  30.     include 'MixedMode.a'
  31.     ENDIF
  32.  
  33.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  34.     include 'Files.a'
  35.     ENDIF
  36. ;        include 'OSUtils.a'                                        ;
  37. ;            include 'Memory.a'                                        ;
  38.  
  39. resSysHeap                        EQU        64                    ;System or application heap?
  40. resPurgeable                    EQU        32                    ;Purgeable resource?
  41. resLocked                        EQU        16                    ;Load it in locked?
  42. resProtected                    EQU        8                    ;Protected?
  43. resPreload                        EQU        4                    ;Load in on OpenResFile?
  44. resChanged                        EQU        2                    ;Resource changed?
  45. mapReadOnly                        EQU        128                    ;Resource file read-only
  46. mapCompact                        EQU        64                    ;Compact resource file
  47. mapChanged                        EQU        32                    ;Write map out at update
  48. kResFileNotOpened                EQU        -1                    ;ref num return as error when opening a resource file
  49. kSystemResFile                    EQU        0                    ;this is the default ref num to the system file
  50.  
  51. ;    These are no longer needed.
  52. ; *    CFM provides us with the necessary run time initialization
  53. ; *    entry points.
  54. ;
  55. ; pascal short InitResources(void)
  56. ;
  57.     IF ¬ GENERATINGCFM THEN
  58.         _InitResources:    OPWORD    $A995
  59.     ELSE
  60.         IMPORT_CFM_FUNCTION    InitResources
  61.     ENDIF
  62.  
  63. ;
  64. ; pascal void RsrcZoneInit(void)
  65. ;
  66.     IF ¬ GENERATINGCFM THEN
  67.         _RsrcZoneInit:    OPWORD    $A996
  68.     ELSE
  69.         IMPORT_CFM_FUNCTION    RsrcZoneInit
  70.     ENDIF
  71.  
  72. ;
  73. ; pascal void CloseResFile(short refNum)
  74. ;
  75.     IF ¬ GENERATINGCFM THEN
  76.         _CloseResFile:    OPWORD    $A99A
  77.     ELSE
  78.         IMPORT_CFM_FUNCTION    CloseResFile
  79.     ENDIF
  80.  
  81. ;
  82. ; pascal short ResError(void)
  83. ;
  84.     IF ¬ GENERATINGCFM THEN
  85.         _ResError:    OPWORD    $A9AF
  86.     ELSE
  87.         IMPORT_CFM_FUNCTION    ResError
  88.     ENDIF
  89.  
  90. ;
  91. ; pascal short CurResFile(void)
  92. ;
  93.     IF ¬ GENERATINGCFM THEN
  94.         _CurResFile:    OPWORD    $A994
  95.     ELSE
  96.         IMPORT_CFM_FUNCTION    CurResFile
  97.     ENDIF
  98.  
  99. ;
  100. ; pascal short HomeResFile(Handle theResource)
  101. ;
  102.     IF ¬ GENERATINGCFM THEN
  103.         _HomeResFile:    OPWORD    $A9A4
  104.     ELSE
  105.         IMPORT_CFM_FUNCTION    HomeResFile
  106.     ENDIF
  107.  
  108. ;
  109. ; pascal void CreateResFile(ConstStr255Param fileName)
  110. ;
  111.     IF ¬ GENERATINGCFM THEN
  112.         _CreateResFile:    OPWORD    $A9B1
  113.     ELSE
  114.         IMPORT_CFM_FUNCTION    CreateResFile
  115.     ENDIF
  116.  
  117. ;
  118. ; pascal short OpenResFile(ConstStr255Param fileName)
  119. ;
  120.     IF ¬ GENERATINGCFM THEN
  121.         _OpenResFile:    OPWORD    $A997
  122.     ELSE
  123.         IMPORT_CFM_FUNCTION    OpenResFile
  124.     ENDIF
  125.  
  126. ;
  127. ; pascal void UseResFile(short refNum)
  128. ;
  129.     IF ¬ GENERATINGCFM THEN
  130.         _UseResFile:    OPWORD    $A998
  131.     ELSE
  132.         IMPORT_CFM_FUNCTION    UseResFile
  133.     ENDIF
  134.  
  135. ;
  136. ; pascal short CountTypes(void)
  137. ;
  138.     IF ¬ GENERATINGCFM THEN
  139.         _CountTypes:    OPWORD    $A99E
  140.     ELSE
  141.         IMPORT_CFM_FUNCTION    CountTypes
  142.     ENDIF
  143.  
  144. ;
  145. ; pascal short Count1Types(void)
  146. ;
  147.     IF ¬ GENERATINGCFM THEN
  148.         _Count1Types:    OPWORD    $A81C
  149.     ELSE
  150.         IMPORT_CFM_FUNCTION    Count1Types
  151.     ENDIF
  152.  
  153. ;
  154. ; pascal void GetIndType(ResType *theType, short index)
  155. ;
  156.     IF ¬ GENERATINGCFM THEN
  157.         _GetIndType:    OPWORD    $A99F
  158.     ELSE
  159.         IMPORT_CFM_FUNCTION    GetIndType
  160.     ENDIF
  161.  
  162. ;
  163. ; pascal void Get1IndType(ResType *theType, short index)
  164. ;
  165.     IF ¬ GENERATINGCFM THEN
  166.         _Get1IndType:    OPWORD    $A80F
  167.     ELSE
  168.         IMPORT_CFM_FUNCTION    Get1IndType
  169.     ENDIF
  170.  
  171. ;
  172. ; pascal void SetResLoad(Boolean load)
  173. ;
  174.     IF ¬ GENERATINGCFM THEN
  175.         _SetResLoad:    OPWORD    $A99B
  176.     ELSE
  177.         IMPORT_CFM_FUNCTION    SetResLoad
  178.     ENDIF
  179.  
  180. ;
  181. ; pascal short CountResources(ResType theType)
  182. ;
  183.     IF ¬ GENERATINGCFM THEN
  184.         _CountResources:    OPWORD    $A99C
  185.     ELSE
  186.         IMPORT_CFM_FUNCTION    CountResources
  187.     ENDIF
  188.  
  189. ;
  190. ; pascal short Count1Resources(ResType theType)
  191. ;
  192.     IF ¬ GENERATINGCFM THEN
  193.         _Count1Resources:    OPWORD    $A80D
  194.     ELSE
  195.         IMPORT_CFM_FUNCTION    Count1Resources
  196.     ENDIF
  197.  
  198. ;
  199. ; pascal Handle GetIndResource(ResType theType, short index)
  200. ;
  201.     IF ¬ GENERATINGCFM THEN
  202.         _GetIndResource:    OPWORD    $A99D
  203.     ELSE
  204.         IMPORT_CFM_FUNCTION    GetIndResource
  205.     ENDIF
  206.  
  207. ;
  208. ; pascal Handle Get1IndResource(ResType theType, short index)
  209. ;
  210.     IF ¬ GENERATINGCFM THEN
  211.         _Get1IndResource:    OPWORD    $A80E
  212.     ELSE
  213.         IMPORT_CFM_FUNCTION    Get1IndResource
  214.     ENDIF
  215.  
  216. ;
  217. ; pascal Handle GetResource(ResType theType, short theID)
  218. ;
  219.     IF ¬ GENERATINGCFM THEN
  220.         _GetResource:    OPWORD    $A9A0
  221.     ELSE
  222.         IMPORT_CFM_FUNCTION    GetResource
  223.     ENDIF
  224.  
  225. ;
  226. ; pascal Handle Get1Resource(ResType theType, short theID)
  227. ;
  228.     IF ¬ GENERATINGCFM THEN
  229.         _Get1Resource:    OPWORD    $A81F
  230.     ELSE
  231.         IMPORT_CFM_FUNCTION    Get1Resource
  232.     ENDIF
  233.  
  234. ;
  235. ; pascal Handle GetNamedResource(ResType theType, ConstStr255Param name)
  236. ;
  237.     IF ¬ GENERATINGCFM THEN
  238.         _GetNamedResource:    OPWORD    $A9A1
  239.     ELSE
  240.         IMPORT_CFM_FUNCTION    GetNamedResource
  241.     ENDIF
  242.  
  243. ;
  244. ; pascal Handle Get1NamedResource(ResType theType, ConstStr255Param name)
  245. ;
  246.     IF ¬ GENERATINGCFM THEN
  247.         _Get1NamedResource:    OPWORD    $A820
  248.     ELSE
  249.         IMPORT_CFM_FUNCTION    Get1NamedResource
  250.     ENDIF
  251.  
  252. ;
  253. ; pascal void LoadResource(Handle theResource)
  254. ;
  255.     IF ¬ GENERATINGCFM THEN
  256.         _LoadResource:    OPWORD    $A9A2
  257.     ELSE
  258.         IMPORT_CFM_FUNCTION    LoadResource
  259.     ENDIF
  260.  
  261. ;
  262. ; pascal void ReleaseResource(Handle theResource)
  263. ;
  264.     IF ¬ GENERATINGCFM THEN
  265.         _ReleaseResource:    OPWORD    $A9A3
  266.     ELSE
  267.         IMPORT_CFM_FUNCTION    ReleaseResource
  268.     ENDIF
  269.  
  270. ;
  271. ; pascal void DetachResource(Handle theResource)
  272. ;
  273.     IF ¬ GENERATINGCFM THEN
  274.         _DetachResource:    OPWORD    $A992
  275.     ELSE
  276.         IMPORT_CFM_FUNCTION    DetachResource
  277.     ENDIF
  278.  
  279. ;
  280. ; pascal short UniqueID(ResType theType)
  281. ;
  282.     IF ¬ GENERATINGCFM THEN
  283.         _UniqueID:    OPWORD    $A9C1
  284.     ELSE
  285.         IMPORT_CFM_FUNCTION    UniqueID
  286.     ENDIF
  287.  
  288. ;
  289. ; pascal short Unique1ID(ResType theType)
  290. ;
  291.     IF ¬ GENERATINGCFM THEN
  292.         _Unique1ID:    OPWORD    $A810
  293.     ELSE
  294.         IMPORT_CFM_FUNCTION    Unique1ID
  295.     ENDIF
  296.  
  297. ;
  298. ; pascal short GetResAttrs(Handle theResource)
  299. ;
  300.     IF ¬ GENERATINGCFM THEN
  301.         _GetResAttrs:    OPWORD    $A9A6
  302.     ELSE
  303.         IMPORT_CFM_FUNCTION    GetResAttrs
  304.     ENDIF
  305.  
  306. ;
  307. ; pascal void GetResInfo(Handle theResource, short *theID, ResType *theType, Str255 name)
  308. ;
  309.     IF ¬ GENERATINGCFM THEN
  310.         _GetResInfo:    OPWORD    $A9A8
  311.     ELSE
  312.         IMPORT_CFM_FUNCTION    GetResInfo
  313.     ENDIF
  314.  
  315. ;
  316. ; pascal void SetResInfo(Handle theResource, short theID, ConstStr255Param name)
  317. ;
  318.     IF ¬ GENERATINGCFM THEN
  319.         _SetResInfo:    OPWORD    $A9A9
  320.     ELSE
  321.         IMPORT_CFM_FUNCTION    SetResInfo
  322.     ENDIF
  323.  
  324. ;
  325. ; pascal void AddResource(Handle theData, ResType theType, short theID, ConstStr255Param name)
  326. ;
  327.     IF ¬ GENERATINGCFM THEN
  328.         _AddResource:    OPWORD    $A9AB
  329.     ELSE
  330.         IMPORT_CFM_FUNCTION    AddResource
  331.     ENDIF
  332.  
  333. ;
  334. ; pascal long GetResourceSizeOnDisk(Handle theResource)
  335. ;
  336.     IF ¬ GENERATINGCFM THEN
  337.         _GetResourceSizeOnDisk:    OPWORD    $A9A5
  338.     ELSE
  339.         IMPORT_CFM_FUNCTION    GetResourceSizeOnDisk
  340.     ENDIF
  341.  
  342. ;
  343. ; pascal long GetMaxResourceSize(Handle theResource)
  344. ;
  345.     IF ¬ GENERATINGCFM THEN
  346.         _GetMaxResourceSize:    OPWORD    $A821
  347.     ELSE
  348.         IMPORT_CFM_FUNCTION    GetMaxResourceSize
  349.     ENDIF
  350.  
  351. ;
  352. ; pascal long RsrcMapEntry(Handle theResource)
  353. ;
  354.     IF ¬ GENERATINGCFM THEN
  355.         _RsrcMapEntry:    OPWORD    $A9C5
  356.     ELSE
  357.         IMPORT_CFM_FUNCTION    RsrcMapEntry
  358.     ENDIF
  359.  
  360. ;
  361. ; pascal void SetResAttrs(Handle theResource, short attrs)
  362. ;
  363.     IF ¬ GENERATINGCFM THEN
  364.         _SetResAttrs:    OPWORD    $A9A7
  365.     ELSE
  366.         IMPORT_CFM_FUNCTION    SetResAttrs
  367.     ENDIF
  368.  
  369. ;
  370. ; pascal void ChangedResource(Handle theResource)
  371. ;
  372.     IF ¬ GENERATINGCFM THEN
  373.         _ChangedResource:    OPWORD    $A9AA
  374.     ELSE
  375.         IMPORT_CFM_FUNCTION    ChangedResource
  376.     ENDIF
  377.  
  378. ;
  379. ; pascal void RemoveResource(Handle theResource)
  380. ;
  381.     IF ¬ GENERATINGCFM THEN
  382.         _RemoveResource:    OPWORD    $A9AD
  383.     ELSE
  384.         IMPORT_CFM_FUNCTION    RemoveResource
  385.     ENDIF
  386.  
  387. ;
  388. ; pascal void UpdateResFile(short refNum)
  389. ;
  390.     IF ¬ GENERATINGCFM THEN
  391.         _UpdateResFile:    OPWORD    $A999
  392.     ELSE
  393.         IMPORT_CFM_FUNCTION    UpdateResFile
  394.     ENDIF
  395.  
  396. ;
  397. ; pascal void WriteResource(Handle theResource)
  398. ;
  399.     IF ¬ GENERATINGCFM THEN
  400.         _WriteResource:    OPWORD    $A9B0
  401.     ELSE
  402.         IMPORT_CFM_FUNCTION    WriteResource
  403.     ENDIF
  404.  
  405. ;
  406. ; pascal void SetResPurge(Boolean install)
  407. ;
  408.     IF ¬ GENERATINGCFM THEN
  409.         _SetResPurge:    OPWORD    $A993
  410.     ELSE
  411.         IMPORT_CFM_FUNCTION    SetResPurge
  412.     ENDIF
  413.  
  414. ;
  415. ; pascal short GetResFileAttrs(short refNum)
  416. ;
  417.     IF ¬ GENERATINGCFM THEN
  418.         _GetResFileAttrs:    OPWORD    $A9F6
  419.     ELSE
  420.         IMPORT_CFM_FUNCTION    GetResFileAttrs
  421.     ENDIF
  422.  
  423. ;
  424. ; pascal void SetResFileAttrs(short refNum, short attrs)
  425. ;
  426.     IF ¬ GENERATINGCFM THEN
  427.         _SetResFileAttrs:    OPWORD    $A9F7
  428.     ELSE
  429.         IMPORT_CFM_FUNCTION    SetResFileAttrs
  430.     ENDIF
  431.  
  432. ;
  433. ; pascal short OpenRFPerm(ConstStr255Param fileName, short vRefNum, SInt8 permission)
  434. ;
  435.     IF ¬ GENERATINGCFM THEN
  436.         _OpenRFPerm:    OPWORD    $A9C4
  437.     ELSE
  438.         IMPORT_CFM_FUNCTION    OpenRFPerm
  439.     ENDIF
  440.  
  441. ;
  442. ; pascal Handle RGetResource(ResType theType, short theID)
  443. ;
  444.     IF ¬ GENERATINGCFM THEN
  445.         _RGetResource:    OPWORD    $A80C
  446.     ELSE
  447.         IMPORT_CFM_FUNCTION    RGetResource
  448.     ENDIF
  449.  
  450.     IF SystemSevenOrLater  THEN
  451. ;
  452. ; pascal short HOpenResFile(short vRefNum, long dirID, ConstStr255Param fileName, SInt8 permission)
  453. ;
  454.     IF ¬ GENERATINGCFM THEN
  455.         _HOpenResFile:    OPWORD    $A81A
  456.     ELSE
  457.         IMPORT_CFM_FUNCTION    HOpenResFile
  458.     ENDIF
  459.  
  460.     ELSE
  461. ;
  462. ; pascal short HOpenResFile(short vRefNum, long dirID, ConstStr255Param fileName, SInt8 permission)
  463. ;
  464.     IF GENERATINGCFM THEN
  465.         IMPORT_CFM_FUNCTION    HOpenResFile
  466.     ENDIF
  467.  
  468.     ENDIF
  469.     IF SystemSevenOrLater  THEN
  470. ;
  471. ; pascal void HCreateResFile(short vRefNum, long dirID, ConstStr255Param fileName)
  472. ;
  473.     IF ¬ GENERATINGCFM THEN
  474.         _HCreateResFile:    OPWORD    $A81B
  475.     ELSE
  476.         IMPORT_CFM_FUNCTION    HCreateResFile
  477.     ENDIF
  478.  
  479.     ELSE
  480. ;
  481. ; pascal void HCreateResFile(short vRefNum, long dirID, ConstStr255Param fileName)
  482. ;
  483.     IF GENERATINGCFM THEN
  484.         IMPORT_CFM_FUNCTION    HCreateResFile
  485.     ENDIF
  486.  
  487.     ENDIF
  488. ;
  489. ; pascal short FSpOpenResFile(const FSSpec *spec, SignedByte permission)
  490. ;
  491.     IF ¬ GENERATINGCFM THEN
  492.         Macro
  493.         _FSpOpenResFile
  494.             moveq    #13,d0
  495.             dc.w     $AA52
  496.         EndM
  497.     ELSE
  498.         IMPORT_CFM_FUNCTION    FSpOpenResFile
  499.     ENDIF
  500.  
  501. ;
  502. ; pascal void FSpCreateResFile(const FSSpec *spec, OSType creator, OSType fileType, ScriptCode scriptTag)
  503. ;
  504.     IF ¬ GENERATINGCFM THEN
  505.         Macro
  506.         _FSpCreateResFile
  507.             moveq    #14,d0
  508.             dc.w     $AA52
  509.         EndM
  510.     ELSE
  511.         IMPORT_CFM_FUNCTION    FSpCreateResFile
  512.     ENDIF
  513.  
  514. ;  partial resource calls  
  515. ;
  516. ; pascal void ReadPartialResource(Handle theResource, long offset, void *buffer, long count)
  517. ;
  518.     IF ¬ GENERATINGCFM THEN
  519.         Macro
  520.         _ReadPartialResource
  521.             moveq    #1,d0
  522.             dc.w     $A822
  523.         EndM
  524.     ELSE
  525.         IMPORT_CFM_FUNCTION    ReadPartialResource
  526.     ENDIF
  527.  
  528. ;
  529. ; pascal void WritePartialResource(Handle theResource, long offset, const void *buffer, long count)
  530. ;
  531.     IF ¬ GENERATINGCFM THEN
  532.         Macro
  533.         _WritePartialResource
  534.             moveq    #2,d0
  535.             dc.w     $A822
  536.         EndM
  537.     ELSE
  538.         IMPORT_CFM_FUNCTION    WritePartialResource
  539.     ENDIF
  540.  
  541. ;
  542. ; pascal void SetResourceSize(Handle theResource, long newSize)
  543. ;
  544.     IF ¬ GENERATINGCFM THEN
  545.         Macro
  546.         _SetResourceSize
  547.             moveq    #3,d0
  548.             dc.w     $A822
  549.         EndM
  550.     ELSE
  551.         IMPORT_CFM_FUNCTION    SetResourceSize
  552.     ENDIF
  553.  
  554. ;
  555. ; pascal Handle GetNextFOND(Handle fondHandle)
  556. ;
  557.     IF ¬ GENERATINGCFM THEN
  558.         Macro
  559.         _GetNextFOND
  560.             moveq    #10,d0
  561.             dc.w     $A822
  562.         EndM
  563.     ELSE
  564.         IMPORT_CFM_FUNCTION    GetNextFOND
  565.     ENDIF
  566.  
  567. ; Use TempInsertROMMap to force the ROM resource map to be
  568. ;   inserted into the chain in front of the system. Note that
  569. ;   this call is only temporary - the modified resource chain
  570. ;   is only used for the next call to the resource manager.
  571. ;   See IM IV 19 for more information. 
  572. ;
  573. ; pascal void TempInsertROMMap(Boolean tempResLoad)
  574. ;
  575.     IF GENERATINGCFM THEN
  576.         IMPORT_CFM_FUNCTION    TempInsertROMMap
  577.     ENDIF
  578.  
  579.     IF OLDROUTINENAMES  THEN
  580.     ENDIF
  581.     ENDIF ; __RESOURCES__
  582.